﻿var msgBox = null;
var $nowRow = null;
var sonId = null;
var IsEdit = false;
var targetUrl="../Action/BookManager.ashx";
$(function () {
    $('.window-mask').css('width', '100%');
    msgBox = new MsgBox({ imghref: "../images/" });
    $('input[id=btndialogOk]').bind('click', function () {
       if ($("#MgrId").val() == "") {
           if (doAdd())
           {
               $('#dialogModify1').window('close');
           }
         } else {
           doEdit();
           $('#dialogModify1').window('close');
       }
    });
    $('input[id=btndialogSonOk]').bind('click', function () {
        if ($("#MgrSonId").val() == "") {
            if (doSonAdd())
            {
                $('#dialogSonModify').window('close');
            }
        } else {
            doSonEdit();
            $('#dialogSonModify').window('close');
        }       
    });
    $('input[id=btndialogBookOk]').bind('click', function () {
        if ($("#BookId").val() == "") {
            if (doBookAdd())
            {
                $('#dialogBookModify').window('close');
            }
        } else {
            doBookEdit();
            $('#dialogBookModify').window('close');
        }
    });
    //2.为新增按钮 绑定方法
    $("input[id=btnAdd]").click(showAdd);
    $("input[id=btnAddSonMenu]").click(showSonAdd);
    $("input[id=btnBookAdd]").click(showBookAdd);
    $("input[id=btnupdown]").click(DoUpDowm);
    $('.l-btn-text').text('').append('<img src="../images/u286.gif"/ style="margin-bottom:4px;border:0px;">');
    //$("input[id=btnCancel]").click(doCancel);
    //-----------------------------------------------------------------
    if ($("#strValueHtml").val() == "2")
    {
        getPageList(1);
    }
});

//------------------请求分页 数据------------------------
function getPageList(pageIndex) {
    //重置数据显示表格
     clearTable();
    //1.请求班级列表数据 {statu:"ok",msg:"加载成功",data:{PageIndex:1,PageCount:4,RowCount:39,PagedList:[{},{},{}]},backUrl:"null"}
    $.post("../Action/BookList.ashx",  { type: "page", pi: pageIndex }, function (jsObj) {
        if (jsObj.statu == "ok") {
            //1.4 创建表格
            makeTable(jsObj.data.PagedList, jsObj.data.PublishList);
            //1.5 生成页码条
            makePageBar(getPageList, document.getElementById("pageBar"), pageIndex, jsObj.data.PageCount, 2, jsObj.data.RowCount);
            //background-color: #868484;
            // border: 1px solid #cccccc;
            $("#pageBar select").css({ "background-color": "#868484", "border": "1px solid #cccccc", "width": "90px","margin-top": "3px" });
        }
    }, "json");
}
function clearTable() {
    var tb = document.getElementById("tbList");
    var rowCount = tb.rows.length;
    for (var i = rowCount - 1; i >1; i--) {
        tb.deleteRow(i);
    }
}

//2.根据 数据对象数组 生成 表格行
function makeTable(jsonArr,publishData) {
    //2.1循环数组生成行
    for (var i = 0; i < jsonArr.length; i++) {
        makeTr(jsonArr[i], publishData);
    }
}

//3.创建行
function makeTr(rowData, publishData) {
    var tbList = document.getElementById("tbList");
    //3.1追加行
    var newRow = tbList.insertRow(-1);
    //3.2为新行 追加 列
    newRow.insertCell(-1).innerHTML = rowData.Id;
    newRow.insertCell(-1).innerHTML = rowData.Title;
    newRow.insertCell(-1).innerHTML = rowData.UnitPrice;
    newRow.insertCell(-1).innerHTML = rowData.Author;
    for (var i = 0; i < publishData.length; i++) {
        if (rowData.PublisherId == publishData[i].Id)
        {
            newRow.insertCell(-1).innerHTML = publishData[i].Name;
        }
    }
    // 超链接 href中的this =window，只有事件中的 this = 事件源（被点击的超链接）
    newRow.insertCell(-1).innerHTML = "<a href='javascript:void(0)' onclick='doBookDel(" + rowData.Id + ",this);'>删</a> "
        + "<a href='javascript:void(0)' onclick='showBookEdit(" + rowData.Id + ",this);'>改</a>";
}

function showBookAdd() {
    //清空 文本框
    $("#BookId").val("");
    $("#BookName").val("");
    $("#Author").val("");
    $("#ISBN").val("");
    $("#PublishDate").val("");
    $("#UnitPrice").val("");
    $("#CommentDes").val("");
    $("#AuthorDes").val("");
    $("#PublishId").val("");
    $("#TypeBookName").val("");
    $(".easyui-filebox").filebox('setValue', "");
    //打开修改面板
    $("#dialogBookModify").window('open');
}

function GetChecked()
{
    if ($("#BookName").val().trim() == "") {
        msgBox.showMsgErr("书名不能为空！");
        return false;
    } else if ($("#Author").val().trim() == "") {
        msgBox.showMsgErr("作者不能为空！");
        return false;
    } else if ($("#PublishDate").val().trim() == "") {
        msgBox.showMsgErr("出版社不能为空！");
        return false;
    } else if ($(".easyui-filebox").filebox('getValue')=="") {
        msgBox.showMsgErr("图片不能为空！");
        return false;
    } else if ($("#ISBN").val().trim() == "") {
        msgBox.showMsgErr("ISBN不能为空！");
        return false;
    } else if ($("#UnitPrice").val().trim() == "") {
        msgBox.showMsgErr("价格不能为空！");
        return false;
    } else if ($("#TypeBookName").val().trim() == "") {
        msgBox.showMsgErr("图书类别不能为空！");
        return false;
    }
    return true;
}
function DoUpDowm()
{
    if (GetChecked())
    {
        IsEdit = true;
        //var filename = $(".easyui-filebox").filebox('getValue').split("fakepath");
        //var slit = filename[1].split(".");
        //if (slit[0].length > 11) {
        //    msgBox.showMsgErr("图片名称太长！");
        //    return;
        //} else
        //{

        //}
        var commentDes = $("#CommentDes").val();
        commentDes = commentDes.replace(/</g, "&lt;");
        commentDes = commentDes.replace(/>/g, "&gt;");
        $("#CommentDes").val(commentDes);
        $("#fBookModify").submit();
    }
}
function doBookAdd()
{   
    if (GetChecked()) {
        if (IsEdit == true) {
            var commentDes = $("#CommentDes").val();
            commentDes = commentDes.replace(/</g, "&lt;");
            commentDes = commentDes.replace(/>/g, "&gt;");
            $("#CommentDes").val(commentDes);
            var data = $("#fBookModify").serialize();
            //1.提交修改数据
            $.post(targetUrl, data + "&type=doBookAdd", function (jsObj) {
                //调用pd方法 统一处理 返回的数据
                processData(jsObj, function () {
                    debugger;
                    var trs = "";
                    var strTr = '<tr class="align_Center"><td>' + jsObj.data.GetboksList.Id + '</td><td>' + jsObj.data.GetboksList.Title + '</td><td>' + jsObj.data.GetboksList.UnitPrice + '</td><td>' + jsObj.data.GetboksList.Author + '</td>';
                    for (var i = 0; i < jsObj.data.GetPublishList.length; i++) {
                        if (jsObj.data.GetboksList.PublisherId == jsObj.data.GetPublishList[i].Id)
                            trs = ' <td>' + jsObj.data.GetPublishList[i].Name + '</td>';
                    }
                    var trss = '<td>' +
                     '<a href="javascript:void(0)" style="margin-right:3px;" onclick="doBookDel(' + jsObj.data.GetboksList.Id + ',this);">删</a>' +
                     '<a href="javascript:void(0)" onclick="showBookEdit(' + jsObj.data.GetboksList.Id + ',this)">改</a></td></tr>';
                    $("#tbList").append(strTr + trs + trss);
                    $("#dialogBookModify").window("close");
                });
            }, "json");
        } else {
            msgBox.showMsgOk("请先上传图书图片。");
        }
        return true;
    } else
    {
        return false;
    }
}
function showBookEdit(bookid, btn)
{
    msgBox.showMsgWait("加载数据中。。。");
    $nowRow = $(btn).parent().parent();
    $.post(targetUrl, { type: "dobookPanel", bookid: bookid }, function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            if (jsObj.statu == "ok") {
                debugger;
                var optHtml = "";
                var optsHtml = "";
                $("#BookId").val(jsObj.data.GetboksList.Id);
                $("#BookName").val(jsObj.data.GetboksList.Title);
                $("#Author").val(jsObj.data.GetboksList.Author);
                $("#ISBN").val(jsObj.data.GetboksList.ISBN);
                //for (var i = 0; i < jsObj.data.GetPublishList.length; i++)
                //{
                //    optHtml += "<option value=" + jsObj.data.GetPublishList[i].Id + ">" + jsObj.data.GetPublishList[i].Name+ "</option>";
                //}
                //$("#PublishId").html("").html(optHtml);
                $("#PublishId").val(jsObj.data.GetboksList.PublisherId);
                $("#PublishDate").val(jsObj.data.GetboksList.PublishDate);
                $("#UnitPrice").val(jsObj.data.GetboksList.UnitPrice);
                $("#CommentDes").val(jsObj.data.GetboksList.ContentDescription);
                $("#AuthorDes").val(jsObj.data.GetboksList.AurhorDescription);
                //for (var j = 0; j < jsObj.data.GetCategoryList.length; j++)
                //{
                //    if (jsObj.data.GetCategoryList[j].Pid != 0)
                //    {
                //        optsHtml += "<option value=" + jsObj.data.GetCategoryList[j].Id + ">" + jsObj.data.GetCategoryList[j].Name + "</option>";
                //    }
                //}
                //$("#TypeBookName").html("").html(optsHtml);
                $("#TypeBookName").val(jsObj.data.GetboksList.CategoryId);
            }
            msgBox.showMsgOk(jsObj.msg);
            $("#dialogBookModify").window('open');
        });
    }, "json");
}
function doBookEdit()
{
    var commentDes = $("#CommentDes").val();
    commentDes = commentDes.replace(/</g, "&lt;");
    commentDes = commentDes.replace(/>/g, "&gt;");
    $("#CommentDes").val(commentDes);
    var data = $("#fBookModify").serialize();
    //1.提交修改数据
    $.post(targetUrl, data + "&type=doBookEdit", function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            //1.1如果修改成功，则 将数据更新到 dom的行对象中
            if ($nowRow != null) {
                //不再直接修改表格行 的内容 因为 修改面板 里的 下拉框也需要重新加载
                var $tds = $nowRow.children("td");
                $tds[1].innerHTML = jsObj.data.GetboksList.Title;
                $tds[2].innerHTML = jsObj.data.GetboksList.UnitPrice;
                $tds[3].innerHTML = jsObj.data.GetboksList.Author;
                for (var i = 0; i < jsObj.data.GetPublishList.length; i++)
                {
                    if (jsObj.data.GetboksList.PublisherId == jsObj.data.GetPublishList[i].Id) {
                        $tds[4].innerHTML = jsObj.data.GetPublishList[i].Name;
                    }
                }
             
                //清空选中行
                $nowRow = null;
                msgBox.showMsgOk(jsObj.msg);
                $("#dialogBookModify").window("close");
            }
        });
    }, "json");
}
function doBookDel(bookid, btn)
{
    $nowRow = $(btn).parent().parent();
    //1.提交修改数据
    $.post(targetUrl, { type: "delbook", bookid: bookid }, function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            //1.1如果修改成功，则 将数据更新到 dom的行对象中
            if ($nowRow != null) {
                $nowRow.remove();
                msgBox.showMsgOk(jsObj.msg);
            }
        });
    }, "json");
}

//新增类别
function showSonAdd() {
    $("#MgrSonId").val("");
    //清空 文本框
    $("#BookType").val("");
    //打开修改面板
    $("#dialogSonModify").window('open');
}
function showAdd() {
    //清空 文本框
    $("#MgrName").val("");
    $("#sonId").hide();
    $("#MgrPid").val(0);
    //打开修改面板
    $("#dialogModify1").window('open');
}

function doAdd() {
    if ($("#MgrName").val().trim() == "")
    {
        msgBox.showMsgErr("类别名称不能为空！");
        return false;
    }
    var data = $("#fModify").serialize();
    //1.提交修改数据
    $.post(targetUrl, data + "&type=add", function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            debugger;
            $("#tbList").append('<tr class="align_Center"><td width="10%">' + jsObj.data.Id + '</td><td width="25%">' + jsObj.data.Name + '</td><td></td><td width="40%">'+
             '<a href="javascript:void(0)" title="删除" style="margin-right:10px;margin-left: 10px;" onclick="doDel(' + jsObj.data.Id + ',this)">删除</a>' +
             '<a href="javascript:void(0)" title="修改" style="margin-right:10px;" onclick="doUpdate(' + jsObj.data.Id + ',this)">修改</a>' +
             '<a href="javascript:void(0)" title="删除子菜单" style="margin-right:10px;" onclick="doDelSonMenu(' + jsObj.data.Id + ',this)">删除子菜单</a>' +
             '<a href="javascript:void(0)" title="修改子菜单" style="margin-right:10px;" onclick="doUpdateSonMenu(' + jsObj.data.Id + ',this)">修改子菜单</a></td></tr>');
            msgBox.showMsgOk(jsObj.msg);
        });       
    }, "json");
    return true;
}

function doSonAdd() {
    if ($("#BookType").val().trim() == "") {
        msgBox.showMsgErr("图书类别不能为空！");
        return false;
    }
    var data = $("#fSonModify").serialize();
    $("#TypeName").removeAttr("disabled");
    //1.提交修改数据
    $.post(targetUrl, data + "&type=addson", function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            debugger;
            var trs = $("#tbList tr.align_Center");
            var strops = "";
            for (var i = 0; i < trs.length; i++)
            {
                var tid =$($(trs[i]).find('td').get(0)).text();
                if (tid == jsObj.data.Pid)
                {
                    strops = "<option value ='" + jsObj.data.Id + "'>" + jsObj.data.Name + "</option>";
                    $($(trs[i]).find('td').get(2)).find('[id=selectSonId]').append(strops);
                }
            }
        });
    }, "json");
}
//2.加载 要修改的菜单 并 显示 修改面板
function doUpdate(mid, btn) {
    $("#sonId").show();
    $nowRow = $(btn).parent().parent();
    //1.根据id去数据库查询 要修改的菜单数据
    msgBox.showMsgWait("加载中...");
    //1.1修改时不允许选择 上级菜单
    $("#MgrPId").attr("disabled", true);
    $.ajax(targetUrl, {
        type: "get",
        data: { type: "get", "Cid": mid },
        dataType: "json",
        cache: false,
        success: function (jsObj) {
            //获取 响应报文 后 立即 隐藏 消息框
            msgBox.hidBox();
            //调用pd方法 统一处理 返回的数据
            processData(jsObj, function () {
                //2.1将数据 显示到 修改面板 的控件中
                var htmloption = "";
                $("#MgrId").val(jsObj.data[0].Id);
                $("#MgrName").val(jsObj.data[0].Name);
                for (var i = 1; i < jsObj.data.length; i++) {
                    htmloption += "<option value=" + jsObj.data[i].Id + ">" + jsObj.data[i].Name + "</option>";
                }
                $("#MgrPId").html("").html(htmloption);
                $("#MgrPid").val(jsObj.data[0].Pid);
                //3.展开 修改面板
                $('#dialogModify1').window('open');
            });

        }
    });
}
function doUpdateSonMenu(mid, btn) {
    $nowRow = $(btn).parent().parent();
    sonId = $($nowRow.find('td').get(2)).find('[id=selectSonId]').val();
    //1.根据id去数据库查询 要修改的菜单数据
    msgBox.showMsgWait("加载中...");
    //1.1修改时不允许选择 上级菜单
    $("#TypeName").attr("disabled", true);
    $.ajax(targetUrl, {
        type: "get",
        data: { type: "editSon", "Cid": mid, "Sid": sonId },
        dataType: "json",
        cache: false,
        success: function (jsObj) {
            //获取 响应报文 后 立即 隐藏 消息框
            msgBox.hidBox();
            //调用pd方法 统一处理 返回的数据
            processData(jsObj, function () {
                //2.1将数据 显示到 修改面板 的控件中
                var htmloption = "";
                $("#MgrSonId").val(jsObj.data.Id);
                $("#MgPid").val(jsObj.data.Pid);
                $("#BookType").val(jsObj.data.Name);
                $("#TypeName").val(jsObj.data.Pid);
                //3.展开 修改面板
                $('#dialogSonModify').window('open');
            });

        }
    });
}
//2.1确定修改
function doEdit() {
    $("#sonId").show();
    var data = $("#fModify").serialize();
    //1.提交修改数据
    $.post(targetUrl, data + "&type=m", function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            //1.1如果修改成功，则 将数据更新到 dom的行对象中
            if ($nowRow != null) {
                //不再直接修改表格行 的内容 因为 修改面板 里的 下拉框也需要重新加载
                var $tds = $nowRow.children("td");
                $tds[1].innerHTML = jsObj.data.Name;
                //清空选中行
                $nowRow = null;
            }
        });
    }, "json");
}
function doSonEdit() {
    var data = $("#fSonModify").serialize();
    //1.提交修改数据
    $.post(targetUrl, data + "&type=ds", function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            //1.1如果修改成功，则 将数据更新到 dom的行对象中
            if ($nowRow != null) {
                //不再直接修改表格行 的内容 因为 修改面板 里的 下拉框也需要重新加载
                var $tds = $nowRow.children("td");
                var stropshtml = "";
                for (var i = 0; i < jsObj.data.length; i++)
                {
                    stropshtml += "<option value='" + jsObj.data[i].Id + "'>" +jsObj.data[i].Name+ "</option>"
                }
                $($tds[2]).find('[id=selectSonId]').html("").html(stropshtml);
                $($tds[2]).find('[id=selectSonId]').val(sonId);
                //清空选中行
                $nowRow = null;
                sonId = null;
            }
        });
    }, "json");
}
function doDel(tid, btn) {
    $nowRow = $(btn).parent().parent();
    //1.提交修改数据
    $.post(targetUrl, { type: "d", tid: tid }, function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            //1.1如果修改成功，则 将数据更新到 dom的行对象中
            if ($nowRow != null) {
                $nowRow.remove();
            }
        });
    }, "json");
}
function doDelSonMenu(tid, btn) {
    $nowRow = $(btn).parent().parent();
    sonId = $($nowRow.find('td').get(2)).find('[id=selectSonId]').val();
    //1.提交修改数据
    $.post(targetUrl, { type: "delson", sonId: sonId }, function (jsObj) {
        //调用pd方法 统一处理 返回的数据
        processData(jsObj, function () {
            //1.1如果修改成功，则 将数据更新到 dom的行对象中
            if ($nowRow != null) {
                $($nowRow.find('td').get(2)).find('[id=selectSonId]').find('option:selected').remove();
            }
            //清空选中行
            $nowRow = null;
            sonId = null;
        });
    }, "json");

}